import java.util.*;

public class Test {
    //笔试强训day15  第二题  分组
    public static Map<Integer, Integer> map;
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 先输入
        int n = in.nextInt();
        int m = in.nextInt();

        //定义一个哈希表
        map = new HashMap<>();  //记录每个声位出现的个数
        for(int i = 0; i < n; i++) {
            int ret = in.nextInt();

            if(map.containsKey(ret)) {
                map.put(ret,map.get(ret) + 1);
            }else {
                map.put(ret,1);
            }

        }
        if(map.size() > m) {  //超出计划分的组数
            System.out.println(-1);
            return;
        }

        int count = 0; //记录一下最多的小组人数
        for(int i = 1; i <= 100000; i++) {
            if(isMan(i,m)) {
                System.out.println(i);
                return;
            }
        }



    }
    public static boolean isMan(int i,int m) {
        int count = 0;
        for(int val : map.values()) {
            count += val/i + (val %i == 0 ? 0 : 1);
        }
        return count <= m;
    }

}
